1. The Field of the Invention
This invention relates to computer software and, more particularly, to novel systems and methods for distributing computer software and data across a computer network.
2. The Background Art
In recent years there has been a great increase in the amount of computer technology that is involved in daily life. In today""s world, computer technology is involved in many aspects of a person""s day. Many devices being used today by consumers have a small computer inside of the device. These small computers come in varying sizes and degrees of sophistication. These small computers include everything from one microcontroller to a fully-functional complete computer system. For example, these small computers may be a one-chip computer, such as a microcontroller, a one-board type of computer, such as a controller, a typical desktop computer, such as an IBM-PC compatible, etc.
The small computers, (which can be rather large computers depending on the particular need which is being met by the computer), almost always have one or more processors at the heart of the computer. The processor(s) usually are interconnected to different external inputs and outputs and function to manage the particular device. For example, a processor in a vending machine for soda pop may be connected to the buttons used to select the pop, to the switch that allows a pop to drop down to a user, and to lights to indicate that the machine does not have any more pop of a particular variety.
Computer technology is involved in many aspects of daily life. Many appliances, devices, etc., include one or more small computers. For example, refrigerators, telephones, typewriters, automobiles, vending machines, and many different types of industrial equipment all have small computers, or processors, inside of them. Computer software runs the processors of these computers and tells the processors what to do to carry out certain tasks. For example, the computer software running on a processor in a vending machine may cause a soda pop to drop to a user when the correct change has been entered by a user.
These types of small computers that are a part of a device, appliance, tool, etc., are often referred to as embedded systems. The term xe2x80x9cembedded systemxe2x80x9d usually refers to computer hardware and software that is part of a larger system. Embedded systems usually do not have typical input and output devices such as a keyboard, mouse, and/or monitor. Usually, at the heart of each embedded system is one or more processor(s).
Typically the embedded systems used today with various appliances, devices, etc., do not have a lot of storage capability. As a result, the amount of data that can be stored on the embedded systems is limited. With only limited storage, an embedded system may not have as many features and capabilities as it could have if it had more available storage.
Some embedded systems have been connected to computer networks to allow some communication between the embedded system and a larger computer system. However, because embedded systems are often not equipped with the functionality to effectively and efficiently communicate with other computer systems, the communication capability is usually limited.
Because of the constrained memory resources on the embedded systems, often only limited interaction from a computer network with the embedded system is available. This interaction is often of limited use because of the difficulty in communicating with the different parts of the embedded system.
In view of the foregoing, it is a primary object of the present invention to distribute services of an embedded system across a larger computer system.
It is also an object of the present invention to increase the functionality of an embedded system.
Further, it is an object of the present invention to increase the effective storage capability of data related to the embedded system.
It is also an object to increase the communications capabilities of an embedded system.
It is yet a further object of the present invention to enhance the ability of a larger computer system to interact and interface with an embedded system.
Consistent with the foregoing objects, and in accordance with the invention as embodied and broadly described herein, a method and apparatus for use in a networked computer system including a host computer and a remote computer, where the remote computer is in electronic communication with a device, are disclosed in one embodiment of the present invention as including a first member component implemented and stored on the host computer, and a second member component implemented and stored on the host computer. The second member component is in electronic communication with the remote computer, and the second member component functions to access data on the remote computer.
An apparatus made in accordance with one embodiment of the invention may include a distributed object as being a part of an object hierarchy. This object hierarchy may include a base class including member data and functions common to a set of remote computers, where the base class is implemented and stored on the host computer. The object hierarchy may also include a first subclass derived from the base class. The first subclass may be implemented and stored on the host computer. This first subclass includes the second member component in electronic communication with the remote computer. The object hierarchy may also include a second subclass that alters the function of the object.
A method practiced in accordance with an embodiment of the invention may include the steps of providing application code on the remote computer, where the application code provides services related to the device; exporting an enumeration of services to the host computer, where the enumeration is a subset of the services; encapsulating the enumeration of the services; and accessing a service at the remote computer through the encapsulation of the services. The method may also include the step of creating a services list on the remote computer, where the list includes information about certain services.